博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将DJANGO管理界面的filter_horizontal移到前面来复用
阅读量:7064 次
发布时间:2019-06-28

本文共 1496 字,大约阅读时间需要 4 分钟。

参考URL:

http://www.hoboes.com/Mimsy/hacks/replicating-djangos-admin/reusing-djangos-filter_horizontal/

http://www.hoboes.com/Mimsy/hacks/replicating-djangos-admin/

我要想的东东,没有上面讲的那么复杂,就是想在用户操作M2M时,可以从容的选择不同的选项,而不用担心哪些东东被漏了。

按上面的文档,我的实现如下:

一,新建一个模板文档,将相关的DJANGO管理里的CSS,JS移出来备用。

popupplus.html(注意初始化的参数,0为横向,1为纵向)

{% load staticfiles %}
{% if multiple %}{% endif %}

二,重写forms.py里的代码,让其继承forms.SelectMultiple来改写:

class MultipleSelectWithPop(forms.SelectMultiple):    def render(self, name, *args, **kwargs):        html = super(MultipleSelectWithPop, self).render(name, *args, **kwargs)        popupplus = render_to_string("rightmanage/popupplus.html", {
'field': name, 'multiple': True}) return html+popupplus

三,让相关字段继承这个类,来实现横向选择。

class RightManageFATForm(forms.ModelForm):    def __init__(self, *args, **kwargs):        super(RightManageFATForm, self).__init__(*args, **kwargs)    fat_users = forms.ModelMultipleChoiceField(        User.objects,        widget=MultipleSelectWithPop,    )    name = forms.CharField(        required=False,        error_messages={
'required': "不能为空"}, label=u"项目名称", widget=forms.TextInput( attrs={ 'class': 'uk-width-1-4', 'disabled': 'true', } ), ) class Meta: model = Site fields = ['name', 'fat_users', ] exclude = ['app_name', 'description', 'app_name', 'manage_user', 'uat_users', 'prd_users', 'valid_users', ]

四,然后,,好像就抽定啦。。。:)好像字体没调好,暂时不管。。。

转载地址:http://keill.baihongyu.com/

你可能感兴趣的文章
关于feign调用传递header的解决方法
查看>>
深信服必备知识
查看>>
CentOS 5.x/6.x下安装配置PPTP ×××服务器及常见问题
查看>>
老男孩教育每日一题-第71天—基础命令知识:如何做一个linux版本的回收站
查看>>
paste命令
查看>>
centos安装Mysql环境
查看>>
zabbix通过skype发送报警消息之终结
查看>>
org.hibernate.AssertionFailure: null id in xxx (don't flush the Session after an exception occurs)
查看>>
多ip pptp
查看>>
Nagios 请检查HTTP服务器关于该CGI的访问权限设置
查看>>
Jpush设置Alias和Tags问题
查看>>
我的友情链接
查看>>
Android全局对话框
查看>>
awstats 分析nginx 日志
查看>>
给zabbix添加短信、微信、邮件报警
查看>>
MPChart 使用参考博客
查看>>
java: command not found
查看>>
单机上使用git#180804
查看>>
nginx+tomcat负载均衡
查看>>
php-编译安装
查看>>